package com.dimpt.cloud.userauth.service;

import com.dimpt.cloud.userauth.model.TokenSO;
import com.dimpt.cloud.userauth.model.UserSO;

import java.util.Map;

/**
 * @Author: Liujiangfeng
 * @Description:
 * @Date: Created in 17:40 2018-05-25
 * @Version: 1.0
 */

public interface IAuthService {

    /**
     * 用户登录
     * @param loginMap
     * @return
     */
    UserSO login(Map<String, String> loginMap);

    /**
     * 用户退出
     * @param token
     */
    void logout(String token);

    /**
     * 检查用户是否登录
     * @param username
     * @return
     */
    UserSO checkUserIsLogin(String username);

    /**
     * 校验token是否有效
     * @param tokenId
     * @return
     */
    TokenSO validateToken(String tokenId);

    /**
     * 校验请求url是否在非鉴权列表内
     * @param method
     * @param uri
     * @return
     */
    boolean isPermit(String method, String uri);

    /**
     * 校验请求的方法和uri是否在角色可执行范围内
     * @param role
     * @param method
     * @param uri
     * @return
     */
    boolean auth(String role, String method, String uri);
}
